SNMP คืออะไร
Simple Network Management Protocol หรือ SNMP คืออะไร ? จริงๆแล้วมันคือมาตราฐาน protocol ชนิดหนึ่งสำหรับรวบรวมและจัดเรียงข้อมูลเกี่ยวกับอุปกณ์ในระบบ IP Network เมื่ออุปกรณ์เหล่านั้นมีการเปลี่ยนแปลงข้อมูลไปจากเดิม อุปกรณ์ที่รองรับ SNMP ตัวอย่างเช่น modems, router, switch, servers, workstations, printers และ อุปกรณ์ด้าน IT อื่นๆ
SNMP มีการอย่างแพร่หลายสำหรับทำ network management หรือระบบการ monitoring โดน SNMP จะเก็บข้อมูลในรูปแบบตัวแปรและจัดการโดย management information base (MIB) ซึ่งเป็นที่เก็บข้อมูลหรือ database สำหรับการจัดการหรือเปลี่ยนแปลงค่าต่างๆบนอุปกรณ์ใน network ณ ตอนนี้มี SNMP ออกมาถึง 3 version โดย SNMPv1 เป็น protocol รุ่นแรก และถูกพัฒนาต่อเป็น SNMPv2c และ SNMPv3 ตามลำดับ เพื่อเพิ่มขึดความสามารถ ความยื่ดหยุ่นในการใช้งานรวมถึงระบบ security
หลักการทำงานของ SNMP
เมื่อทราบแล้วว่า SNMP คืออะไร มาดูกันต่อว่าแล้ว SNMP ทำงานอย่างไร โดยส่วนมากแล้วเราใช้ SNMP สำหรับการบริหารจัดการระบบ computer จำนวนมาก ซึ่งมีความสามารถในการ monitor หรือจัดการกลุ่ม host หรือ อุปกรณ์ใน network โดยอุปกรณ์ในระบบจะ agent ที่คอยทำงานเพื่อตรวจสอบตอดลเวลา และก็จะส่ง report กลับไปหาตัว manger ที่เป็นฝั่ง server
SNMP จะมีส่วนประกอบด้วยกัน 3 ตัวหลักคือ
- ตัวอุปกรณ์ที่อยู่ใน network
- Agent — เป็น software ที่ต้องติดตั้งอยุ่บนอุปกรณ์เพื่อทำการตรวจสอบและ report สิ่งผิดปกติ
- Network management station (NMS) — เป็น software ของฝั่ง SNMP server หรือที่เรียกว่า manger คอยรับและเก็บรวบรวมข้อมูลจาก agent
โครงสร้างของ Protocol SNMP
SNMP ทำงานในระดับ Application Layer ในรูปแบบ Internet Protocol Suit ซึ่ง SNMP agent จะรับคำสั่งผ่านทาง UDP port 161 โดยตัว manager จะส่งคำสั่งไปยัง port 161 บนอุปกรณ์ฝั่ง agent จากนั้น agent จะส่งข้อมูลกลับไปยัง manager ตามที่ร้องขอมา ส่วนฝั่ง manager จะมีการรับ notification หรือที่เรียกกันว่า Traps (SNMP Traps) ที่ port 162 โดยฝั่ง agent จะเป็นคนส่ง notification เมื่อพบสิ่งผิดปกติตามที่ตั้ง rule เอาไว้ เพื่อส่งข้อมูลดังกล่าวไปยัง manager port 162 แต่ถ้าใช้เป็น secure port หรือ Transport Layer Security (TLS) สำหรับ agent จะเป็น port 10161 และ ฝั่ง manager trap จะเป็น port 10162
SNMPv1 ประกอบด้วย 5 protocol data units (PDUs) ส่วนอีก 2 PDUs คือ GetBulkRequest และ InformRequest ถูกเพิ่มเข้ามาใน SNMPv2 ส่วน Report PDU เพิ่มเข้ามาใน SNMPv3
Packet ภายในแต่ละ PDU จะประกอบดังนี้
IP header | UDP header | version | community | PDU-type | request-id | error-status | error-index | variable bindings |
PDU 8 ชนิด
1. GetRequest (manager t0 agent)
เป็นการที่ฝั่ง manger ส่งคำขอดูข้อมูลไปยัง agent โดยจะกำหนดข้อมูลที่ต้องการไปใน object ภายใน message หรือที่เรียกว่า object identifier เช่น 1.3.6.1.2.1.1.1.0 หมายถึงต้องการทราบข้อมูล sysDescr หรือ ข้อมูลรายละเอียดของอุปกรณ์ที่ agent ติดตั้งอยู่ ซึ่งทาง agent เองก็จะตอบข้อมูลรายละเอียดดังกล่าวกลับไป
2. GetNextRequest (manager t0 agent)
เป็น PDU ที่ทาง manager ส่งไปหา agent เพื่อเอาข้อมูลตัวแปร โดยค่าของ object ตัวต่อจาก object ID ที่กำหนดใน MIB ส่วนใหญ่จะใช้ในการเอาค่าเข้าสู่ตาราง เพราะถ้า Manager ไม่ทราบ index ที่จะดึงก็จะไม่สามารถดึงค่าออกมาได้ แต่สำหรับ GetNextRequest จะกำหนด Object ID ในตารางของตัวถัดไปเรื่อยๆเอง
3. GetbulkRequest (manager t0 agent)
เป็นการที่ manager ส่งคำสั่งไปหา agent เพื่อเอาชุดข้อมูลขนาดใหญ่ แทนการ GetRequest หรือ GetNextRequest หลายๆครั้ง
4. SetRequest (manager t0 agent)
เป็นฝั่ง manager ส่งคำสังไปยัง agent เพื่อกำหนด set ค่าของตัวแปร หรือเปลี่ยนแปลงค่าที่ configure ไว้ใน MIB ของอุปรณ์นั้นๆ
5. Response (agent t0 manager)
เป็นฝั่ง agent ส่งหา manager เพื่อตอบกลับข้อมูลจากคำสั่ง PDU GetRequest หรือ GetNextRequest โดยจะส่งข้อมูลของตัวแปรที่ร้องขอกลับไปหา manager
6. Trap (agent t0 manager)
เป็นฝั่ง agent ส่งหา manager เพื่อแจ้งหรือ notify เหตุการณ์ที่เกิดขึ้นบนฝั่ง agent เอง เช่นเกิดการ reboot server หรือมีค่าบางอย่างที่สูงถึง trigger ที่กำหนด
7. InFormRequest (manager to manager)
เป็นฝั่ง manager ส่งหา manager กันเอง เพื่อรับค่าตัวแปรบางอย่างจาก agent ที่อยู่ภายใต้การควบคุมของ manger อีกตัวซึ่งจะต้องต้อบกลับด้วย Response PDU เช่นกัน
8. Report (manager to manager)
เป็นการส่งรายงานข้อผิดพลาดในระบบระหว่าง manager ด้วยกันเอง
Author: Suphakit Annoppornchai
Credit: https://saixiii.com, https://en.wikipedia.org
[…] Peer-to-Peer หรือ SMPP อย่าพึ่งสับสนกับ SMTP หรือ SNMP นะครับ ทั้งหมดคือ protocol […]